#ifndef SERVER_H
#define SERVER_H

#include "user.h"
#include "message.h"
#include <sys/socket.h>
#include <netinet/in.h>

// 服务器配置
typedef struct {
    int port;
    char user_file[100];
    char history_dir[100];
    int max_connections;
} ServerConfig;

// 服务器结构体
typedef struct {
    int server_fd;
    struct sockaddr_in address;
    UserList *user_list;
    ServerConfig config;
    int pipe_fd[2]; // 用于进程间通信的管道
} ChatServer;

// 初始化服务器
extern ChatServer* init_server(int port, const char *user_file, const char *history_dir);

// 启动服务器
extern void start_server(ChatServer *server);

// 停止服务器
extern void stop_server(ChatServer *server);

// 处理客户端连接
extern void* handle_client(void *arg);

// 发送系统消息
extern void send_system_message(ChatServer *server, const char *message);

// 处理客户端消息
extern bool process_client_message(ChatServer *server, const char *message, int client_fd);

#endif /* SERVER_H */